package fr.uniscol.siecle.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class UAJ implements Serializable, DonneeSiecle {

	private String uaj = null;
	
	private int id = 0;
	
	private String numeroSiren = null;
	
	private String denominationPrincipale = null;
	
	private String denominationComplete = null;
	
	private String nomResponsable = null;
	
	private String qualificationResponsable = null;
	
	private String adresse1 = null;
	
	private String adresse2 = null;
	
	private String adresse3 = null;
	
	private String boitePostale = null;
	
	private String communeEtrangere = null;
	
	private String telephone = null;
	
	private String mail = null;
	
	private Academie academie = null;
	
	private TypeEtablissement typeEtablissement = null;
	
	private String codePostal = null;
	
	private Commune commune = null;
	
	private Pays pays = null;
	
	private String secteur = null;
	
	private List<AnneeScolaire> anneesScolaires = null;

	public UAJ() {
		super();
	}

	public UAJ(String uaj) {
		super();
		this.uaj = uaj;
	}

	public UAJ(String uaj, int id) {
		super();
		this.uaj = uaj;
		this.id = id;
	}

	public String getUaj() {
		if(uaj == null){
			uaj = "";
		}
		return uaj;
	}

	public void setUaj(String uaj) {
		this.uaj = uaj;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNumeroSiren() {
		if(numeroSiren == null){
			numeroSiren = "";
		}
		return numeroSiren;
	}

	public void setNumeroSiren(String numeroSiren) {
		this.numeroSiren = numeroSiren;
	}

	public String getDenominationPrincipale() {
		if(denominationPrincipale == null){
			denominationPrincipale = "";
		}
		return denominationPrincipale;
	}

	public void setDenominationPrincipale(String denominationPrincipale) {
		this.denominationPrincipale = denominationPrincipale;
	}

	public String getDenominationComplete() {
		if(denominationComplete == null){
			denominationComplete = "";
		}
		return denominationComplete;
	}

	public void setDenominationComplete(String denominationComplete) {
		this.denominationComplete = denominationComplete;
	}

	public String getNomResponsable() {
		if(nomResponsable == null){
			nomResponsable = "";
		}
		return nomResponsable;
	}

	public void setNomResponsable(String nomResponsable) {
		this.nomResponsable = nomResponsable;
	}

	public String getQualificationResponsable() {
		if(qualificationResponsable == null){
			qualificationResponsable = "";
		}
		return qualificationResponsable;
	}

	public void setQualificationResponsable(String qualificationResponsable) {
		this.qualificationResponsable = qualificationResponsable;
	}

	public String getAdresse1() {
		if(adresse1 == null){
			adresse1 = "";
		}
		return adresse1;
	}

	public void setAdresse1(String adresse1) {
		this.adresse1 = adresse1;
	}

	public String getAdresse2() {
		if(adresse2 == null){
			adresse2 = "";
		}
		return adresse2;
	}

	public void setAdresse2(String adresse2) {
		this.adresse2 = adresse2;
	}

	public String getAdresse3() {
		if(adresse3 == null){
			adresse3 = "";
		}
		return adresse3;
	}

	public void setAdresse3(String adresse3) {
		this.adresse3 = adresse3;
	}

	public String getBoitePostale() {
		if(boitePostale == null){
			boitePostale = "";
		}
		return boitePostale;
	}

	public void setBoitePostale(String boitePostale) {
		this.boitePostale = boitePostale;
	}

	public String getCommuneEtrangere() {
		if(communeEtrangere == null){
			communeEtrangere = "";
		}
		return communeEtrangere;
	}

	public void setCommuneEtrangere(String communeEtrangere) {
		this.communeEtrangere = communeEtrangere;
	}

	public String getTelephone() {
		if(telephone == null){
			telephone = "";
		}
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public String getMail() {
		if(mail == null){
			mail = "";
		}
		return mail;
	}

	public void setMail(String mail) {
		this.mail = mail;
	}

	public TypeEtablissement getTypeEtablissement() {
		return typeEtablissement;
	}

	public void setTypeEtablissement(TypeEtablissement typeEtablissement) {
		this.typeEtablissement = typeEtablissement;
	}

	public String getCodePostal() {
		if(codePostal == null){
			codePostal = "";
		}
		return codePostal;
	}

	public void setCodePostal(String codePostal) {
		this.codePostal = codePostal;
	}

	public Commune getCommune() {
		return commune;
	}

	public void setCommune(Commune commune) {
		this.commune = commune;
	}

	public Pays getPays() {
		return pays;
	}

	public void setPays(Pays pays) {
		this.pays = pays;
	}

	public String getSecteur() {
		if(secteur ==  null){
			secteur = "";
		}
		return secteur;
	}

	public void setSecteur(String secteur) {
		this.secteur = secteur;
	}

	public Academie getAcademie() {
		return academie;
	}

	public void setAcademie(Academie academie) {
		this.academie = academie;
	}

	public List<AnneeScolaire> getAnneesScolaires() {
		if(anneesScolaires == null){
			anneesScolaires = new ArrayList<AnneeScolaire>();
		}
		return anneesScolaires;
	}

	public void setAnneesScolaires(List<AnneeScolaire> anneesScolaires) {
		this.anneesScolaires = anneesScolaires;
	}
	
	public AnneeScolaire getAnneeScolaire(int annee){
		for(AnneeScolaire a : getAnneesScolaires()){
			if(a.getAnnee() == annee){
				return a;
			}
		}
		return null;
	}
	
	public void ajouterAnneeScolaire(AnneeScolaire annee){
		if(!getAnneesScolaires().contains(annee)){
			getAnneesScolaires().add(annee);
		}
		annee.setUaj(this);
	}

	@Override
	public boolean equals(Object obj) {
		UAJ uaj = (UAJ)obj;
		return getUaj().equalsIgnoreCase(uaj.getUaj());
	}	
}
